#ifndef ROKETOBJECT_H_
#define ROKETOBJECT_H_
#include <cmath>
#include "../baseclass/Elem3D.h"
#include "../spec/ExplosionObject.h"
#include "../spec/WorldObject.h"
#include "../spec/TargetObject.h"
#include "../spec/SmokeObject.h"

class RoketObject : public Elem3D
{

    bool visible;   //visibile
    bool fut_visible;
    bool shooted;  //se sparato
    bool flag; 
    int type;      //tipo di missile
    
    //per il movimento
    double dx;
    double dz;
    float dy;
    float vel; //velocità del missile
    
    //angoli per il fumo intorno al missile
    float angZ_cer;
    float angZ_cer1;
   
    //spiazzamento posizione
    float or_disp[3];
    
    //nomi list
    static int names[5];
    static bool compiled;

public:
	RoketObject();
	virtual ~RoketObject();
    
    RoketObject(GameStatus* g): Elem3D(g){}
    void SetDisp(float x,float y,float z) { or_disp[0]= x, or_disp[1]  = y, or_disp[2]= z;}
    void SetPosDriection(float x,float y,float z,float angY);
    
    void LoadLists();
    void shift_fum();
    void DoIdle();
    void Init();
    void Draw();
    void SetType(int t){type = t;}
    void SetIvisible()                  {fut_visible = false;}
    void SetVisible()                  {fut_visible = true, visible = true;}
    void Shoot();
    void Generate_Explosion(float x,float y,float z);
    void Generate_Smoke(float x,float y,float z);
    
};

#endif /*ROKETOBJECT_H_*/
